using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Cinematic")]
	public class Cinematic : MonoBehaviour
	{
		[Attribute38("Cinematic.PlayOptions")]
		public class PlayOptions : MonoClass
		{
			public PlayOptions(IntPtr address, string className)
				: base(address, className)
			{
			}

			public PlayOptions(IntPtr address)
				: this(address, "PlayOptions")
			{
			}
		}

		public static string CINEMATIC_FILE_PATH => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Cinematic", "CINEMATIC_FILE_PATH");

		public static float MOVIE_LOAD_TIMEOUT => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "Cinematic", "MOVIE_LOAD_TIMEOUT");

		public bool m_isPlaying => method_2<bool>("m_isPlaying");

		public bool m_isMovieLoaded => method_2<bool>("m_isMovieLoaded");

		public bool m_isMovieAudioLoaded => method_2<bool>("m_isMovieAudioLoaded");

		public PlayOptions m_options => method_3<PlayOptions>("m_options");

		public SoundDucker m_soundDucker => method_3<SoundDucker>("m_soundDucker");

		public int m_previousTargetFrameRate => method_2<int>("m_previousTargetFrameRate");

		public Cinematic(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Cinematic(IntPtr address)
			: this(address, "Cinematic")
		{
		}

		public static void PlayCinematic(string gameObjectName, string localeName)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "Cinematic", "PlayCinematic", gameObjectName, localeName);
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public bool isPlaying()
		{
			return method_11<bool>("isPlaying", Array.Empty<object>());
		}

		public void StartPlaying()
		{
			method_8("StartPlaying");
		}

		public void StopPlaying()
		{
			method_8("StopPlaying");
		}

		public void OnGUI()
		{
			method_8("OnGUI");
		}

		public void MovieLoaded(AssetReference assetRef, object asset, object callbackData)
		{
			method_8("MovieLoaded", assetRef, asset, callbackData);
		}

		public void AudioLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("AudioLoaded", assetRef, go, callbackData);
		}
	}
}
